/*****************************
 *@file: PierceBullet
 *@author: 陈吕唐
 *@desc: 穿透子弹
 *@date: 2024-03-21	09:22
 *****************************/
import { IPhysics2DContact, _decorator } from 'cc';
import { BaseCharacter } from '../BaseCharacter';
import { BaseBullet } from './BaseBullet';
const { ccclass, property } = _decorator;

@ccclass('PierceBullet')
export class PierceBullet extends BaseBullet {
    /****************************************************************************************************************
     *Readonly 常量
     ****************************************************************************************************************/

    /****************************************************************************************************************
     *Property 定义变量
     ****************************************************************************************************************/
    /**
     * 剩余可穿透人数
     */
    private _number: number = 3;

    /***************************************************************
     *PropertyUI 引用的控件
     ***************************************************************/

    /****************************************************************************************************************
     * Lifecycle 生命周期相关方法
     ****************************************************************************************************************/

    /****************************************************************************************************************
     * Public 公有方法
     ****************************************************************************************************************/
    public override unuse(): void {
        this._number = 3;
    }
    /****************************************************************************************************************
     * private 私有方法
     ****************************************************************************************************************/
    protected onHit(character: BaseCharacter, contact?: IPhysics2DContact): void {
        super.onHit(character, contact);
        contact.disabled = true;
        this.damage(character)
        this.number--;
    }
    /****************************************************************************************************************
     * Property Get && Set 属性的 get && set 函数
     ****************************************************************************************************************/
    public get number(): number {
        return this._number;
    }
    public set number(value: number) {
        this._number = value;
        if (value <= 0) {
            this.recycle();
        }
    }
}


